/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import validaciones.IndexData;
import validaciones.ValidateJSON;

/**
 *
 * @author dblack
 */
public class Sesion extends HttpServlet {

       
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
		IndexData index=new IndexData();
		HttpSession sessiones = request.getSession(false);
		ValidateJSON data=new ValidateJSON();
		int pagina=Integer.parseInt(request.getParameter("pagina"));
		String direccion="";//a donde reenviar
                /*Ya ha sido logueado, debe estar bajo el área que le corresponde*/
                if(sessiones!=null &&  sessiones.getAttribute("idusuario")!=null){
			/*Se debe clasificar de acuerdo a su rol*/
                        System.out.println("areA:"+pagina+" rOL:"+sessiones.getAttribute("rol"));
        		int rol=(Integer)sessiones.getAttribute("rol");
			/*se debe redirigir a la página de inicio de cada quién*/
			switch(rol){
				case IndexData.Responsable_Area:{
                                    if(!(pagina>=index.rInicio&&pagina<=index.rConsultas))
                                        direccion=IndexData.DirrInicio;
				}break;
				case IndexData.Usuario:{
                                    if(!(pagina>=index.uInicio&&pagina<=index.uReportes))
					direccion=IndexData.DiruInicio;
				}break;
				case IndexData.Administrador:{
                                    if(!(pagina>=index.aInicio&&pagina<=index.aReportes))
					direccion=IndexData.DiraInicio;
				}break;
			}
                        if(direccion.length()>0){//quiere decir que hay que moverlo
                            data.put("resultado", index.Redirigir);
                            data.put("direccion", direccion);
                        }
		}
		else{//no tiene sesión
                    
			if(pagina==index.INDEX)//si esta en la principal, ahí se queda
				data.put("resultado", IndexData.Mantener);
			else{
				data.put("resultado", IndexData.Redirigir);
                                direccion="pindex.jsp";//Esta en cualquier lado debe ir a index.jsp
			}
		}
		data.put("direccion", direccion);
				
		PrintWriter out = response.getWriter();		
		response.setContentType("application/json");
		out.print(data.getJSONObject());
		out.close();
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
